package wang.hex;

import org.h2.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DriverX extends Driver {
    //这里修改驱动接受的连接  这样我们用jdbc:hx2:tcp:// 去连
    public static String changeUrl(String url) {
        if (url == null) {
            return null;
        }
        url = url.replace("jdbc:hx2:tcp://", "jdbc:h2:tcp://");
        return url;
    }



    public Connection connect(String url, Properties info) throws SQLException {
        //这里再次代理连接 有的数据库连接工具能跳过代理层直接拿到驱动 比如DataGrip
        //具体原因可以打出栈跟踪调试 在这加上Connection的代理就能跟踪DataGrip的所有行为了
        return TracerFactory.getTracerFromObject(super.connect(changeUrl(url), info));
    }

    public boolean acceptsURL(String url) {

        return super.acceptsURL(changeUrl(url));
    }
}